import numpy as np
%matplotlib notebook
import matplotlib.pyplot as plt
import ipywidgets as widgets
from maux import *
hide_interactive_toolbars()
from maclaurin import plot_maclaurin_polynomials
# nastavenie jazyka
from locale import setlocale, LC_ALL
from platform import uname
if uname()[0] == 'Linux':
setlocale(LC_ALL, 'sk_SK.utf8')
else:
setlocale(LC_ALL, 'sk_SK')
plt.rcParams["axes.formatter.use_locale"] = True
Nech funkcia $f$ je $n$-krát diferencovateľná v bode $0$. Potom Maclaurinov polynóm stupňa $n$ funkcie $f$ sa nazýva polynóm (v premennej $x$) $$ \sum_{i=0}^n \frac{f^{(i)}(0)}{i!} x^i = f(0) + f'(0) x + \frac{f''(0)}{2!} x^2 + \cdots + \frac{f^{(n)}(0)}{n!} x^n. $$ Maclaurinov polynóm je špeciálnym prípadom Taylorovho polynómu v bode $0$.
Doporučená literatúra. Pozri podkapitolu 4.8. Taylorov polynóm v texte
Dokumentácia:
Nakreslenie Maclaurinových polynómov funkcie $$y = \mathrm{e}^x.$$
#####
##### Maclaurinove polynómy stupňa n = 0,1,2,...,N
#####
#### vstupné údaje
## maximálny stupeň Maclaurinového polynómu (táto hodnota sa môže podľa potreby zmeniť)
N = 9
## funkcia
def f(X): return np.exp(X)
X = np.linspace(-4, 2, 6*100+1)
## derivácie
def derivative(n): # n-tá derivácia v bode 0
return 1
## Maclaurinove polynómy
def T(n, X): # n-tý Maclaurinov polynóm
if n >= 0:
return T(n-1, X) + derivative(n) * X ** n / np.math.factorial(n)
else:
return np.zeros(len(X))
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(6, 7)
### diagram
init_subplot(ax)
ax.set_title(r"Maclaurinove polynómy stupňa $n$ funkcie $y = \mathrm{e}^x$")
ax.set_aspect(1)
# ax.grid()
ax.set_ylim(-1.5, 7.5)
## graf funkcie
color = ax.plot([], [], 'k', lw='4', label="funkcia")[0].get_color()
# color = ax.plot([], [], label="funkcia")[0].get_color()
ax.plot(X, f(X), c=color, lw='4', zorder=1)
# ax.plot(0, f(0), 'o', c=color, zorder=1)
## grafy Maclaurinových polynómov
for n in range(0, N+1):
ax.plot(X, T(n, X), label="$n={}$".format(n), zorder=2)
## legenda
ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
To isté ako v predchadzajúcom príklade, len vykreslenie sa deje pomocou interaktívnych prvkov knižnice ipywidgets
.
#####
##### Maclaurinove polynómy stupňa n = 0,1,2,...,N (interaktívna verzia)
#####
#### vstupné údaje
## maximálny stupeň Maclaurinového polynómu (táto hodnota sa môže podľa potreby zmeniť)
N = 9
## funkcia
def f(X): return np.exp(X)
X = np.linspace(-4, 2, 6*100+1)
## derivácie
def derivative(n): # n-tá derivácia v bode 0
return 1
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(6, 7)
### diagram
init_subplot(ax)
ax.set_aspect(1)
# ax.grid()
ax.set_ylim(-1.5, 7.5)
## graf funkcie a Maclaurinových polynómov
title = r"Maclaurinov polynóm stupňa $n = {}$ funkcie $y = \mathrm{{e}}^x$"
plot_maclaurin_polynomials(ax, f, X, derivative, title, stop=N+1)
## legenda
ax.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
Zostrojte Maclaurinove polynómy funkcie $$y = \sin x.$$ Nakreslite ich grafy!
#####
##### Maclaurinove polynómy stupňa n = 0,1,2,...,N (interaktívna verzia)
#####
#### vstupné údaje
## maximálny stupeň Maclaurinového polynómu (táto hodnota sa môže podľa potreby zmeniť)
N = 9
## funkcia
def f(X): return np.sin(X)
X = np.linspace(-2*np.pi, 2*np.pi, 8*100+1)
## derivácie (tento údaj upravte)
def derivative(n): # n-tá derivácia v bode 0
return 0
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 6)
### diagram
init_subplot(ax)
ax.set_aspect(1)
# ax.grid()
## x-ová os
xtick_numerators = range(-4, 4+1)
ax.set_xticks([n * np.pi / 2 for n in xtick_numerators])
ax.set_xticklabels([smart_ticklabel(n, r"\pi", 2) for n in xtick_numerators])
## y-ová os
ax.set_ylim(-4.4, 4.4)
ax.set_yticks(range(-4, 4+1))
## graf funkcie a Maclaurinových polynómov
title = r"Maclaurinov polynóm stupňa $n = {}$ funkcie $y = \sin\,x$"
plot_maclaurin_polynomials(ax, f, X, derivative, title, stop=N+1)
## legenda
ax.legend(loc='upper left')
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
Zostrojte Maclaurinove polynómy funkcie $$y = \cos x.$$ Nakreslite ich grafy!
#####
##### Maclaurinove polynómy stupňa n = 0,1,2,...,N (interaktívna verzia)
#####
#### vstupné údaje
## maximálny stupeň Maclaurinového polynómu (táto hodnota sa môže podľa potreby zmeniť)
N = 9
# funkcia
def f(X): return np.cos(X)
X = np.linspace(-2*np.pi, 2*np.pi, 8*100+1)
## derivácie (tento údaj upravte)
def derivative(n): # n-tá derivácia v bode 0
return 0
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(9, 6)
### diagram
init_subplot(ax)
ax.set_aspect(1)
# ax.grid()
## x-ová os
xtick_numerators = range(-4, 4+1)
ax.set_xticks([n * np.pi / 2 for n in xtick_numerators])
ax.set_xticklabels([smart_ticklabel(n, r"\pi", 2) for n in xtick_numerators])
## y-ová os
ax.set_ylim(-4.4, 4.4)
ax.set_yticks(range(-4, 4+1))
## graf funkcie a Maclaurinových polynómov
title = r"Maclaurinov polynóm stupňa $n = {}$ funkcie $y = \cos\,x$"
plot_maclaurin_polynomials(ax, f, X, derivative, title, stop=N+1)
## legenda
ax.legend(loc='upper left')
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
Zostrojte Maclaurinove polynómy funkcie $$y = \ln(1+x).$$ Nakreslite ich grafy!
#####
##### Maclaurinove polynómy stupňa n = 0,1,2,...,N (interaktívna verzia)
#####
#### vstupné údaje
## maximálny stupeň Maclaurinového polynómu (táto hodnota sa môže podľa potreby zmeniť)
N = 9
## funkcia
def f(X): return np.log(1 + X)
X = np.linspace(-1, 7, 8*1000+1)
X = X[X > -1]
## derivácie (tento údaj upravte)
def derivative(n): # n-tá derivácia v bode 0
return 0
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(7, 7)
### diagram
init_subplot(ax)
ax.set_aspect(1)
# ax.grid()
ax.set_ylim(-5.5, 3.5)
## graf funkcie a Maclaurinových polynómov
title = r"Maclaurinov polynóm stupňa $n = {}$ funkcie $y = \ln(1+x)$"
plot_maclaurin_polynomials(ax, f, X, derivative, title, stop=N+1)
## legenda
ax.legend(loc='right')
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
Zostrojte Maclaurinove polynómy funkcie $$y = \frac{{1}}{{1-x}}.$$ Nakreslite ich grafy!
#####
##### Maclaurinove polynómy stupňa n = 0,1,2,...,N (interaktívna verzia)
#####
#### vstupné údaje
## maximálny stupeň Maclaurinového polynómu (táto hodnota sa môže podľa potreby zmeniť)
N = 9
## funkcia
def f(X): return 1 / (1 - X)
X = np.linspace(-4, 1, 5*1000+1)
X = X[X != 1]
## derivácie (tento údaj upravte)
def derivative(n): # n-tá derivácia v bode 0
return 0
#### obrázok s jedným diagramom
fig, ax = plt.subplots()
fig.set_size_inches(6, 6)
### diagram
init_subplot(ax)
ax.set_aspect(1)
# ax.grid()
ax.set_ylim(0, 5.5)
## graf funkcie a Maclaurinových polynómov
title = r"Maclaurinov polynóm stupňa $n = {}$ funkcie $y = \dfrac{{1}}{{1-x}}$"
plot_maclaurin_polynomials(ax, f, X, derivative, title, stop=N+1)
## legenda
ax.legend(loc='upper left')
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()